package com.service.business.order.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.service.business.order.controller.rep.OrderProductRep;
import com.service.business.order.controller.req.OrderProductOtherCreateReq;
import com.service.business.order.controller.req.OrderProductOtherReq;
import com.service.core.rest.response.CommonPageRep;
import com.service.dao.model.OrderProductOther;
import com.service.business.order.controller.rep.BaseOrderRep;
import com.service.business.order.controller.req.OrderProductPageReq;
import com.service.business.order.dto.ProductOtherCar;

import java.math.BigDecimal;
import java.util.Date;

/**
 * <dl>
 * <dt>back-end</dt>
 * <dd>Description:</dd>
 * <dd>Copyright: Copyright (C) 2015</dd>
 * <dd>Company: </dd>
 * <dd>CreateDate: 2019年09月29日</dd>
 * </dl>
 *
 * @author
 */
public interface OrderProductOtherService extends IService<OrderProductOther> {

    BaseOrderRep orderProduct(OrderProductOtherCreateReq createReq);

    BaseOrderRep getOrderPayInfo(String orderNo);

    OrderProductOther getOrderByOrderNo4Pay(String orderNo);

    OrderProductOther getOrderByOrderNo(String orderNo);

    String buildShopOrderNo();

    CommonPageRep<OrderProductRep> pageOrder(OrderProductPageReq request);

    void cancelOrder(String orderNo);

    void cancelOrder(Integer orderId);

    OrderProductRep orderDetail(String orderNo);

    BigDecimal getOrderTotalMoneyFromCache(Integer memberId);

    BigDecimal getGiftOrderTotalMoney(Integer memberId);

    BigDecimal getGiftOrderTotalMoneyByTime(Integer userId,Date startTime, Date endTime);

    void releaseRecommendAward(Integer orderId);

    BigDecimal getSomedayGiftOrderTotalMoney(Integer memberId, Date someday);

    void sureReceive(String orderNo);
}
